The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, the approaches described in this section may not be prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Generally speaking, print drivers are processes that process print data generated by an application program and convert the print data into a format supported by a printing device that is intended to process the print data. For example, a user creates an electronic document using a word processing application. The user then selects a print option in the application program to request that the electronic document be printed to a particular printing device. In response to the user selecting the print option, the application program generates and provides print data to a print driver installed on the user's client device. Sometimes this involves the use of an intermediary process referred to as a spooler process that saves the print data locally. The print driver processes the print data and generates translated print data that is in a format supported by the particular printing device. For example, in the situation where the particular printing device supports postscript, the print driver processes the print data and generates translated print data that conforms to the postscript format. The print driver then transmits the translated print data via the spooler process to the particular printing device. The particular printing device processes the translated print data and generates a printed version of the electronic document.
Conventional print drivers are printing device specific. That is, each print driver is designed to translate print data into a format that conforms to a particular format supported by a particular printing device. Print drivers are usually provided on storage media when a printing device is purchased and may also be downloaded over the Internet. A print driver needs to be installed for any printer that the user intends to use. For example, a user might install on their laptop computer both a print driver for their home printer as well as a print driver for a work printer. Some users install several print drivers for different printers at work, especially users who travel to different locations of a business organization and use printers at each location.
One of the problems with conventional printing approaches is that users do not necessarily know the status of printers that they are not currently using. For example, when traveling to a different location, users do not know the status of printers at the next location. Printers may be unavailable or have an error that prevents them from printing, and users will likely not know that before attempting to print. The result of printing to a printer that is not available or that has an error condition that prevents printing is conventionally a simple error message indicating that the print job failed with little other information. In this situation, a user is often left to inquire as to the status of the printing device, for example, whether the printing device is actually available and if so, how to correct the error. If a user decides to use a different printing device, the user must determine the available printing devices and their capabilities and also must acquire, install and configure the necessary print drivers. These problems can be exacerbated when users are using small portable devices with limited user interfaces because downloading, installing and configuring print drivers can be more difficult with these types of limited devices. Furthermore, users must know how to configure the printing devices once the print drivers are installed. For example, users must generally know the IP address and port of a printing device to configure the print driver. Thus, when users travel to different locations with mobile devices, they often find it difficult to use printing devices at those locations.